#include "stdio.h"
#include <iostream>
using namespace std;

#define LOG_KEY_GROUP_VAR(F, N) F ## 4 ## N 
#define TAF_SPEC_ACTION(str, dig, action)

#define SECTOR_SIZE 512
#define BLOCK_SIZE 8192

#define SECS (BLOCK_SIZE / SECTOR_SIZE)


class A {
    int a;
public:
    A() {}
    A(int a):a(a) {}
    ~A() {}

    virtual int getValue() { return 0; }
    virtual void execute() {
        cout<<getValue()<<endl;
        cout<<"From A"<<endl;
    }
};

class B : public A {
    int b;
public:
    B(int a, int b):A(a), b(b) {}
    ~B() {}
    int getValue() { return 1; }
};

static int aa = 0;
void testStaticVar() {
    static int aa = 10; 
    //int aa = 10;
    aa++;
    cout<<"call times:"<<aa<<endl;
}


int main()
{
    cout << (int)(LOG_KEY_GROUP_VAR(2, 3)) <<endl;
    TAF_SPEC_ACTION("begin_recovery_session_internal::SliceListInfoInvalid", 1, sliceList = NULL);
    cout << SECS <<endl;

    A* at = new B(1, 2);
    at->execute();

    testStaticVar();
    testStaticVar();
    return 0;


}
